﻿using LiteDB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FileManagerSystem.DbInfos
{
    /// <summary>
    /// 文件映射表
    /// </summary>
    public class ReflectFileInf
    {
        /// <summary>
        /// 唯一主键
        /// </summary>
        [BsonId]
        public Guid Id { get; set; }

        /// <summary>
        /// 映射到主表的GUID
        /// </summary>
        public Guid PId { get; set; }

        /// <summary>
        /// 文件名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 文件名后缀
        /// </summary>
        public string Extension { get; set; }

        /// <summary>
        /// 虚拟顶级目录GUID（可能为空）
        /// </summary>
        public string AbstractTopDirGuid { get; set; }

        /// <summary>
        /// 文件准备存到服务器上的虚拟目录（可以是中文，例如“stl模型”“xxx病人重建数据”等）
        /// <para>以后多文件打包下载时候会根据这个虚拟目录，并基于虚拟顶级目录重建文件夹</para>
        /// <para>（可以为空，为空表示没有上级目录）</para>
        /// </summary>
        public string AbstractDirPath { get; set; }

        /// <summary>
        /// 上传时间 会在初次insert时插入，不用刻意给值
        /// </summary>
        public DateTime UploadTime { get; set; }

        /// <summary>
        /// 是否永久保存
        /// <para>默认不保存，如果未确认上传的文件，在服务器上属于垃圾文件，应该定期清除</para>
        /// </summary>
        public bool Keep { get; set; }
    }
}
